<?php

namespace Portal\InvoiceBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * RequestTutor
 *
 * @ORM\Table(name="request_tutor")
 * @ORM\Entity
 */
class RequestTutor
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="message", type="text", nullable=false)
     */
    private $message;

    /**
     * @var string
     *
     * @ORM\Column(name="first_name", type="string", length=50, nullable=true)
     */
    private $firstName;

    /**
     * @var string
     *
     * @ORM\Column(name="last_name", type="string", length=50, nullable=true)
     */
    private $lastName;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=128, nullable=true)
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="address", type="text", nullable=true)
     */
    private $address;

    /**
     * @var string
     *
     * @ORM\Column(name="phone1", type="string", length=8, nullable=false)
     */
    private $phone1;

    /**
     * @var string
     *
     * @ORM\Column(name="phone2", type="string", length=8, nullable=true)
     */
    private $phone2;

    /**
     * @var integer
     *
     * @ORM\Column(name="user_id", type="integer", nullable=true)
     */
    private $userId;

    /**
     * @var integer
     *
     * @ORM\Column(name="status", type="integer", nullable=false)
     */
    private $status;

    /**
     * @var integer
     *
     * @ORM\Column(name="view_count", type="integer", nullable=false)
     */
    private $viewCount;

    /**
     * @var integer
     *
     * @ORM\Column(name="tutor_id", type="integer", nullable=true)
     */
    private $tutorId;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="applied_date", type="date", nullable=true)
     */
    private $appliedDate;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created_at", type="date", nullable=true)
     */
    private $createdAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
     */
    private $updatedAt;

    /**
     * @var integer
     *
     * @ORM\Column(name="created_ip", type="integer", nullable=false)
     */
    private $createdIp;

    /**
     * @var \SubjectCategory
     *
     * @ORM\ManyToOne(targetEntity="SubjectCategory")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="category_id", referencedColumnName="ID")
     * })
     */
    private $category;

    /**
     * @var \Subject
     *
     * @ORM\ManyToOne(targetEntity="Subject")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="subject_id", referencedColumnName="ID")
     * })
     */
    private $subject;



    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set message
     *
     * @param string $message
     * @return RequestTutor
     */
    public function setMessage($message)
    {
        $this->message = $message;
    
        return $this;
    }

    /**
     * Get message
     *
     * @return string 
     */
    public function getMessage()
    {
        return $this->message;
    }

    /**
     * Set firstName
     *
     * @param string $firstName
     * @return RequestTutor
     */
    public function setFirstName($firstName)
    {
        $this->firstName = $firstName;
    
        return $this;
    }

    /**
     * Get firstName
     *
     * @return string 
     */
    public function getFirstName()
    {
        return $this->firstName;
    }

    /**
     * Set lastName
     *
     * @param string $lastName
     * @return RequestTutor
     */
    public function setLastName($lastName)
    {
        $this->lastName = $lastName;
    
        return $this;
    }

    /**
     * Get lastName
     *
     * @return string 
     */
    public function getLastName()
    {
        return $this->lastName;
    }

    /**
     * Set email
     *
     * @param string $email
     * @return RequestTutor
     */
    public function setEmail($email)
    {
        $this->email = $email;
    
        return $this;
    }

    /**
     * Get email
     *
     * @return string 
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set address
     *
     * @param string $address
     * @return RequestTutor
     */
    public function setAddress($address)
    {
        $this->address = $address;
    
        return $this;
    }

    /**
     * Get address
     *
     * @return string 
     */
    public function getAddress()
    {
        return $this->address;
    }

    /**
     * Set phone1
     *
     * @param string $phone1
     * @return RequestTutor
     */
    public function setPhone1($phone1)
    {
        $this->phone1 = $phone1;
    
        return $this;
    }

    /**
     * Get phone1
     *
     * @return string 
     */
    public function getPhone1()
    {
        return $this->phone1;
    }

    /**
     * Set phone2
     *
     * @param string $phone2
     * @return RequestTutor
     */
    public function setPhone2($phone2)
    {
        $this->phone2 = $phone2;
    
        return $this;
    }

    /**
     * Get phone2
     *
     * @return string 
     */
    public function getPhone2()
    {
        return $this->phone2;
    }

    /**
     * Set userId
     *
     * @param integer $userId
     * @return RequestTutor
     */
    public function setUserId($userId)
    {
        $this->userId = $userId;
    
        return $this;
    }

    /**
     * Get userId
     *
     * @return integer 
     */
    public function getUserId()
    {
        return $this->userId;
    }

    /**
     * Set status
     *
     * @param integer $status
     * @return RequestTutor
     */
    public function setStatus($status)
    {
        $this->status = $status;
    
        return $this;
    }

    /**
     * Get status
     *
     * @return integer 
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * Set viewCount
     *
     * @param integer $viewCount
     * @return RequestTutor
     */
    public function setViewCount($viewCount)
    {
        $this->viewCount = $viewCount;
    
        return $this;
    }

    /**
     * Get viewCount
     *
     * @return integer 
     */
    public function getViewCount()
    {
        return $this->viewCount;
    }

    /**
     * Set tutorId
     *
     * @param integer $tutorId
     * @return RequestTutor
     */
    public function setTutorId($tutorId)
    {
        $this->tutorId = $tutorId;
    
        return $this;
    }

    /**
     * Get tutorId
     *
     * @return integer 
     */
    public function getTutorId()
    {
        return $this->tutorId;
    }

    /**
     * Set appliedDate
     *
     * @param \DateTime $appliedDate
     * @return RequestTutor
     */
    public function setAppliedDate($appliedDate)
    {
        $this->appliedDate = $appliedDate;
    
        return $this;
    }

    /**
     * Get appliedDate
     *
     * @return \DateTime 
     */
    public function getAppliedDate()
    {
        return $this->appliedDate;
    }

    /**
     * Set createdAt
     *
     * @param \DateTime $createdAt
     * @return RequestTutor
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;
    
        return $this;
    }

    /**
     * Get createdAt
     *
     * @return \DateTime 
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     * @return RequestTutor
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;
    
        return $this;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime 
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

    /**
     * Set createdIp
     *
     * @param integer $createdIp
     * @return RequestTutor
     */
    public function setCreatedIp($createdIp)
    {
        $this->createdIp = $createdIp;
    
        return $this;
    }

    /**
     * Get createdIp
     *
     * @return integer 
     */
    public function getCreatedIp()
    {
        return $this->createdIp;
    }

    /**
     * Set category
     *
     * @param \Portal\InvoiceBundle\Entity\SubjectCategory $category
     * @return RequestTutor
     */
    public function setCategory(\Portal\InvoiceBundle\Entity\SubjectCategory $category = null)
    {
        $this->category = $category;
    
        return $this;
    }

    /**
     * Get category
     *
     * @return \Portal\InvoiceBundle\Entity\SubjectCategory 
     */
    public function getCategory()
    {
        return $this->category;
    }

    /**
     * Set subject
     *
     * @param \Portal\InvoiceBundle\Entity\Subject $subject
     * @return RequestTutor
     */
    public function setSubject(\Portal\InvoiceBundle\Entity\Subject $subject = null)
    {
        $this->subject = $subject;
    
        return $this;
    }

    /**
     * Get subject
     *
     * @return \Portal\InvoiceBundle\Entity\Subject 
     */
    public function getSubject()
    {
        return $this->subject;
    }
}